<?php
class app_demo extends app{

    var $ver = 0.8;
    var $name='样例程序';
    var $website = 'http://www.shopex.cn';
    var $author = 'dev@shopex.cn';

    //可选函数
    //定义接管系统哪些流程，由自身的哪个类/方法去执行
    //本例表示，启用后前台将把所有访问购物车的控制器请求重定向
    //到本软件包内 democtl对象的cartidx方法里。
    function ctl_mapper(){
        return array(
            'shop:cart:index' => 'demo_ctl:cartidx',
        );
    }

    //可选函数
    //侦听系统哪些事件
    //此处可用关键字any表示所有事件
    //本例表示：
    //侦听订单新建事件 -> 调用event_handle类的order_new方法执行
    //侦听会员新建事件 -> 调用event_handle类的member_create方法执行
    function listener(){
        return array(
            'trading/order:create' =>
                'demo_event_handler:order_new',

            'member/account:register' =>
                'demo_event_handler:member_create',

            'any'=>'demo_event_handler:any',
        );
    }

    //可选函数, 返回需要建表的信息
    //本例是建立两个表, 系统会自动加前缀 sdb_<ident>
    function dbtables(){
        $tables['table_2'] = array (
            'columns' =>
            array (
                'controller' =>
                array (
                    'type' => 'varchar(100)',
                    'required' => true,
                    'pkey' => true,
                    'editable' => false,
                ),
                'plugin' =>
                array (
                    'type' =>'varchar(100)',
                    'required' => true,
                    'editable' => false,
                ),
            ),
        );
        $tables['table_1'] = array (
            'columns' =>
            array (
                'controller' =>
                array (
                    'type' => 'varchar(100)',
                    'required' => true,
                    'pkey' => true,
                    'editable' => false,
                ),
                'plugin' =>
                array (
                    'type' =>'varchar(100)',
                    'required' => true,
                    'editable' => false,
                ),
            ),
        );
        return $tables;
    }

    
    //我承认这是个非常邪恶的设计...
    //但你要承认它可以让你无所不能
    function output_modifiers(){
        return array(
         'admin:goods/product:index'=>'demo_modifiers:product_edit'
        );
    }

    //重载安装时的方法...
    //同样可重载的还有：
    //   uninstall -> 卸载
    //   enable -> 程序启动
    //   disable -> 程序关闭
    function install(){
        //别忘了调用父类的install
        return parent::install();
    }

}
